하트위키
최근 변경
최근 토론
임의 문서
도구
최근 변경
Linux Script 작성 실습
(r1 RAW)
[목차] == 개요 == 시스템 엔지니어링 1차 과제 중 Linux Script 작성 실습과 관련된 문서이다. == 제 0과제 == scp 명령어 이용해 과제 수행에 필요한 파일들을 받아오는 과제이다. scp 사용법은 아래와 같다. ># scp 원격ID@원격서버IP:파일위치 받는위치 >Ex) scp root@172.16.48.201:"/home/test/{test1[20250109].txt,test2.sh,test[3].log,testfile,}" /home/test_user 위 예시 명령어 확인 시 파일을 한번에 받아오기 위해 중괄호를 추가했고 파일명 중 대괄호가 포함되어 있어 쌍따옴표를 넣어줬다. == 제 1과제 == 2개의 파일 리스트를 비교해 같은 내용이 있는 라인을 출력하는 과제이다. diff 명령어를 사용해 중복된 라인을 출력 후 파일에 넣도록 스크립트 를 작성했다. > # diff "$FILE1" "$FILE2" | grep '^<' | sed 's/^< //' >> "$OUTPUT_FILE" 위 명령어 확인 시 스크립트 파일에서 특수기호 "^<" 사용을 위해 따옴표를 넣어줬다. == 제 2과제 == 대용량 파일을 비교해 공통으로 존재 하는것과 하지 않는 라인을 각각 다른 파일에 저장하는 과제이다. diff 명령어를 사용해 각각 다른 파일에 저장하도록 스크립트를 작성했다. > # diff "$FILE1" "$FILE2" | grep '^<' | sed 's/^< //' | awk -F '[,\t ]+' '{print $1}' >> "$NOT_EXIST_FILE" 위 명령어 확인 시 제 1과제 명령어와[*1 diff "$FILE1" "$FILE2" | grep '^<' | sed 's/^< //' >> "$OUTPUT_FILE"] 비슷하지만, awk를 추가해 필요한 정보만 걸러서 저장하도록 했다. == 제 3과제 == 파일내 시간을 보기 편하게 변환해 파일에 저장하는 과제이다. cat 명령어를 사용해 파일 확인 해 strftime 함수를 이용해 시간을 변환하도록 했다. > # cat "$FILE1" | grep -v history | awk -F ',' '{print $1 "," strftime("%Y-%m-%d %H:%M:%S", $2)}' >> $EXIST_FILE 위 명령어 확인 시 strftime 함수를 이용해 쉼표 2번째의 있는 텍스트(날짜)를 보기편하게(yyyy-mm-dd hh-mm-ss) 변환한다. > AS-IS --> 1721693207 > TO-BE --> 2024-07-09 09:16:44 == 제 4과제 == 파일내 bitrate 값의 따라 각각 다른 파일의 저장하는 과제이다. if문을 통해 6Mbps인 경우 4~6Mbps인 경우 그 외 데이터를 각각 저장 할 수 있도록 작성했다. >if (bitrate >= 6000000) { >print out >> "HD.txt"; >hd_cnt++; hd_sum += bitrate; >} bitrate 값 마다 분리 해주는 구문이다. >if (hd_cnt > 0) { >res = sprintf("total : %d, bitrate avg : %.0f", hd_cnt, hd_sum / hd_cnt); >print res >> "HD.txt"; >} 파일 마지막 줄에 나눈 파일 마다의 총 파일의 개수와 평균 bitrate를 계산한 값을 출력하도록했다. == 제 6과제 == 파일이 복사된 서버의 IP 리스트의 개수와 파일이 복사된 개수를 비교해 두 값이 다른걸 출력하는 과제이다. > split($5, ips, " "); > ip_cnt = length(ips); > copy_cnt = $6; split 함수를 이용해 IP 리스트 개수를 출력, 복사된 개수는 이미 Count되어 있어 값을 가져 올 수 있다. > if (ip_cnt != copy_cnt) { > printf "불일치: %s (실제:%d, 기록:%d)\n", $1, ip_cnt, copy_cnt >} if문을 통해 불일치 값을 출력해 남겨준다.
Liberty
|
the tree